package com.ctshk.rpc.order.localfun.service;

import com.ctshk.common.dto.Result;
import com.ctshk.common.model.TokenUser;
import com.ctshk.common.req.pay.NotifyConsumeReq;
import com.ctshk.rpc.order.localfun.dto.*;
import com.ctshk.rpc.order.localfun.req.*;
import com.ctshk.rpc.order.localfun.req.h5.LocalFunOrderAppCallPayReq;

/**
 * <p>
 * 当地玩乐App 服务类
 * </p>
 *
 * @author 廖胤松
 * @since 2021-05-12
 */
public interface ILocalFunPCOrderService {
    /**
     * PC核对订单信息
     * @param req
     * @return
     */
    Result pcCheckOrder(LocalFunAppOrderReq req,Long loginUserId);

    /**
     * PC订单支付
     * @param payOrderReq
     * @param currentUserAllowNotLogInUserId
     * @return
     */
    Result pcPayOrder(NotifyConsumeReq payOrderReq, Long currentUserAllowNotLogInUserId);

    /**
     * 待支付 取消订单
     * @param localFun0rderCancelReq
     * @param currentUser
     * @return
     */
    Result<Long> cancelLocalFunOrder(LocalFun0rderCancelReq localFun0rderCancelReq, Long currentUser);

    /**
     * 已支付取消订单
     * @param localFun0rderRefundDetailReq
     * @param currentUser
     * @return
     */
    Result<Long> cancelLocalFunOrderRefund(AppLocalFunOrderRefundDetailReq localFun0rderRefundDetailReq, Long currentUser);

    /**
     * 当地玩乐取消订单审批
     * @param localFunOrderCheckReq
     * @param currentUser
     * @return
     */
    Result<Long> refundOperate(LocalFunOrderCheckReq localFunOrderCheckReq, TokenUser currentUser);

    /**
     * 订单详情
     * @param localFunOrderDetailReq
     * @return
     */
    Result<LocalFunOrderDetail> orderDetail(LocalFunOrderDetailReq localFunOrderDetailReq);

    /**
     * 唤起支付
     * @param callPayReq
     * @return
     */
    Result callPay(LocalFunOrderAppCallPayReq callPayReq);

    /**
     * 查询支付结果
     * @param id
     * @return
     */
    Result<AppQueryPayResultDTO> queryPayResult(Long id);
}
















